﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Urgencias.Controlador;
using Urgencias.Modelo;

namespace Urgencias.Vista
{
    public partial class IngresarMedicoUC : UserControl
    {
        Medico m;
        string RUN, ESPECIALIDAD_MEDICA, NOMBRE, APELLIDOPATERNO, APELLIDOMATERNO;
        bool DISPONIBILIDAD_FUNCIONARIO;
        char SEXO;
        DateTime FECHANACIMIENTO;

        public IngresarMedicoUC()
        {
            InitializeComponent();
            m = new Medico();
        }

        private void rutBox_Leave(object sender, EventArgs e)
        {
            string rut = rutBox.Text;
            rutBox.Text = rutBox.Text.ToUpper();
            validarRut(rut);
            
        }

        private void validarRut(string rut)
        {
            if (rut != "  .   .   -")
            {
                rut = rut.ToUpper();

                if (!m.validarDigito(rut))
                {
                    MessageBox.Show(Properties.Resources.ErrorRUT);
                    rutBox.Focus();
                }
            }
        }

        private void cancelarBTN_Click(object sender, EventArgs e)
        {
            Principal.Instance.limpiar();
        }

        private void guardarBTN_Click(object sender, EventArgs e)
        {
            m = new Medico();

            NOMBRE = nombreTB.Text;
            APELLIDOPATERNO = ApPaternoTB.Text;
            APELLIDOMATERNO = apMaternoTB.Text;
            FECHANACIMIENTO = fechaNacimientoDP.Value;

            RUN = rutBox.Text;
            validarRut(RUN);

            if (mascRB.Checked)
                SEXO = 'M';
            else
                SEXO = 'F';

            //m.Telefono = telTB.Text;
            //m.Direccion = dire1TB.Text;
            ESPECIALIDAD_MEDICA = especialidadCB.Text;
            DISPONIBILIDAD_FUNCIONARIO = true;

            if (MedicoControlador.Instance.ingresarMedico( RUN,  ESPECIALIDAD_MEDICA, NOMBRE,  APELLIDOPATERNO,  APELLIDOMATERNO, FECHANACIMIENTO, SEXO,  DISPONIBILIDAD_FUNCIONARIO))
            {
                reestablecer();
                MessageBox.Show(Properties.Resources.MedicoIngreso);
            }
            else
                MessageBox.Show(Properties.Resources.MedicoIngresoError);
        }

        public void reestablecer()
        {
            rutBox.ResetText();
            nombreTB.ResetText();
            apMaternoTB.ResetText();
            ApPaternoTB.ResetText();
            telTB.ResetText();            
            dire1TB.ResetText();
        }

        private void IngresarMedicoUC_Load(object sender, EventArgs e)
        {
            foreach(var v in MedicoControlador.Instance.obtenerEspecialidadesMedicas())
            {
                especialidadCB.Items.Add(v);
            }
            //this.especialidadCB.Items.
            //    = Conexion.Instance.obtenerEspecialidades(especialidadCB);
        }

        private void rutBox_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
        {

        }

        private void rutLabel_Click(object sender, EventArgs e)
        {

        }
    }
}
